//
//  LS_StatusListViewModel.swift
//  weibo
//
//  Created by 罗李苏 on 16/5/25.
//  Copyright © 2016年 Apple. All rights reserved.
//给 LS_HomeTableViewController 提供模型数据

import UIKit

class LS_StatusListViewModel: NSObject {
    //定义模型数组
    lazy var statusViewModelArray: [LS_StatueViewModel] = [LS_StatueViewModel]()
    
    func loadData(isPulling: Bool,finished: (isSuccess: Bool) -> ()){
        //数组的第一个元素的status.id
        //根据是否正在转动处理 since_id 和 max_id 为互斥参数
        var since_id:Int64 = 0
        var max_id:Int64 = 0
        if isPulling {
            max_id = statusViewModelArray.last?.status?.id ?? 0
        }else{
            since_id = statusViewModelArray.first?.status?.id ?? 0
        }
        
        LS_NetworkTools.sharedTools.loadHomePageData(since_id,max_id:max_id) { (responseObject, error) in
            if error != nil{
//                SVProgressHUD.showErrorWithStatus(AppErrorTip)
                
                //执行失败的回调
                finished(isSuccess: false)
                return
            }
            //        print(responseObject)
            //处理数据 AFN 已经将数据处理成了 OC之后数组或者字典
            guard let dict = responseObject as? [String : AnyObject] else{
                
                //执行失败的回调
                finished(isSuccess: false)

                return
            }
            //根据 "statuses"获取数组
            guard let array = dict["statuses"] as? [[String : AnyObject]] else{
                
                //执行失败的回调
                finished(isSuccess: false)

                return
            }
            //遍历数组 获取的是单个 字典 然后进行字典转模型
            //创建临时数组
            var tempArray = [LS_StatueViewModel]()
            for item in array{
                //字典转模型
                let s = LS_Status(dict: item)
                //在数组添加视图模型
                let viewModel = LS_StatueViewModel(status: s)
                //把模型添加到数组
                tempArray.append(viewModel)
            }
            
            //给模型赋值
            if isPulling{
            //加载更多
                self.statusViewModelArray = self.statusViewModelArray + tempArray
            }else{
                self.statusViewModelArray = tempArray + self.statusViewModelArray
            }
            //刷新数据
//            self.tableView.reloadData()
            
            //执行成功的回调
            finished(isSuccess: true)

        }

    }

}
